home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / txl / rexxmdl2.lha / RexModula2 / Phil.rmi < prev    next >
Text File  |  1992-02-26  |  1KB  |  63 lines

  1. MODULE Phil;
  2.  
  3. FROM XdrM2_Phil IMPORT tAck,tReq,tFork;
  4. IMPORT InOut;
  5.  
  6. CONST
  7.     pickup = 1;
  8.     putdown = 2;
  9.  
  10. VAR
  11.     ok: tAck;
  12.     req: tReq;
  13.  
  14.     dummy: ARRAY [ 1..10000] OF LONGCARD;
  15.  
  16. PROCEDURE eat;
  17.  
  18. VAR
  19.     i,j: LONGCARD;
  20.  
  21. BEGIN
  22.     FOR i := 1 TO 10000 DO
  23.     FOR j := 1 TO 100 DO
  24.         dummy[i] := i*i DIV (j*i);
  25.     END;
  26.     END;   
  27. END eat;
  28.  
  29. PROCEDURE think;
  30.  
  31. VAR
  32.     i,j: LONGCARD;
  33.     r: LONGCARD;  
  34.  
  35. BEGIN
  36.     FOR i := 1 TO 10000 DO
  37.     FOR j := 1 TO 100 DO
  38.         dummy[i] := i*i DIV (j*i);
  39.     END;
  40.     END;   
  41. END think;
  42.  
  43. BEGIN
  44.     LOOP
  45.         InOut.WriteString("thinking"); InOut.WriteLn();
  46.         think();
  47.         CALL(sit,req); WAIT (sit,ok);
  48.  
  49.         InOut . WriteString ( "sitting" ) ; InOut . WriteLn ( ) ;
  50.     req.order := pickup;
  51.     CALL(left,req); WAIT(left,ok);
  52.     CALL(right,req); WAIT(right,ok);
  53.  
  54.     InOut . WriteString ( "eating" ) ; InOut . WriteLn ( ) ;
  55.     eat();
  56.     CALL(leave,req); WAIT(leave,ok);
  57.     req.order := putdown;
  58.     CALL(left,req); WAIT(left,ok);
  59.     CALL(right,req); WAIT(right,ok);
  60.     END;
  61. END Phil.
  62.  
  63.